#include<stdio.h>
#include<conio.h>
#include <stdlib.h>
#include <string.h>
typedef struct Student
{
	int id;
    char name[50];
    char sex[4];
    int age;
    char department[50];
    int high;
    float weight;
    float chest;
    int date;
}Student;

  typedef struct Node
{
	Student stu;
	struct Node* pNew;
}Node;

Node *g_pHead=NULL;

void display_mun()
{
	printf("*******************\n");
	printf("*                 *\n");
	printf("*  1 登记学生信息 *\n");
	printf("*  2 删除学生信息 *\n");
	printf("*  3 修改学生信息 *\n");
	printf("*  4 查询学生信息 *\n");
	printf("*  5 统计学生信息 *\n");
	printf("*                 *\n");
	printf("*******************\n");
}

void inputStudent()
{
	Node* pNewNode=(Node*)malloc(sizeof(Node));
	pNewNode->pNew=NULL;
    if (g_pHead==NULL)
    {
    	g_pHead=pNewNode;
	}
	else
	{
	    pNewNode->pNew=g_pHead;
		g_pHead=pNewNode;
	}
	printf("请输入学生学号：\n");
	scanf("%d",&pNewNode->stu.id);
	printf("请输入学生姓名：\n");
	scanf("%s",pNewNode->stu.name);
	printf("请输入学生性别：\n");
	scanf("%s",pNewNode->stu.sex);
	printf("请输入学生年龄：\n");
    scanf("%d",&pNewNode->stu.age);
    printf("请输入学生系别：\n");
    scanf("%s",&pNewNode->stu.department);
    printf("请输入学生身高：\n");
    scanf("%d",&pNewNode->stu.high);
    printf("请输入学生体重：\n");
    scanf("%f",&pNewNode->stu.weight);
    printf("请输入学生胸围：\n");
    scanf("%f",&pNewNode->stu.chest);
    printf("请输入学生日期：\n");
    scanf("%d",&pNewNode->stu.date);
    printf("学生信息录入成功\n");
	 while(1)
	{	
	printf("保存学生信息请按1\n");
	printf("打印学生信息请按2\n");
	char ch = getch();
	switch(ch)
	{
		case '1':{
	FILE* file;
	file=fopen("9.txt","wb");
	if (file==NULL)
	{
		printf("文件打开失败\n");
		return ;
	}
	Node* p=g_pHead;
	while (p!=NULL)
	{
		fwrite(&p->stu,1,sizeof(Student),file);
		p=p->pNew;
	}
	fclose(file);
	printf("\n数据保存成功\n");
			break;
		}
		case '2':
		{
		Node* p=g_pHead;
	    while (p!=NULL)
	    {
		printf("*\t学号\t*\t姓名\t*\t性别\t*\t年龄\t*\t系别\t*\t身高\t*\t体重\t*\t胸围\t*\t日期*\n",
		p->stu.id,
		p->stu.name,
		p->stu.sex,
		p->stu.age,
		p->stu.department,
		p->stu.high,
		p->stu.weight,
		p->stu.chest,
		p->stu.date);
		p=p->pNew;
	    }	
 
		break;
		}
		
	    default:{
	    	printf("输入错误\n");
			break;
		}
	    	
	}
	}
}

void detlStudent()
{
	
}

void editStudent()
{
	
}

void inqurStudent()
{
	
}

void Statistics()
{
	
}



int main()
{
	
	while(1)
	{	
	display_mun();
	char ch = getch();
	switch(ch)
	{
		case '1':{
			inputStudent();
			break;
		}
		case '2':{
			detlStudent();
			break;
		}
		case '3':{
			editStudent();
			break;
		}
		case '4':{
			inqurStudent();
			break;
		}
		case '5':{
			Statistics();
			break;
	    }
	    default:{
	    	printf("输入错误\n");
			break;
		}
	    	
	}
	system("cls");
	system("pause");
	}
	return 0;
}